%% -*- mode: erlang; -*-
#{
    %% must always be of type `load'
    db_apps =>
        [
            mnesia_rocksdb,
            mnesia,
            mria,
            ekka
        ],
    system_apps =>
        [
            kernel,
            sasl,
            crypto,
            public_key,
            asn1,
            syntax_tools,
            ssl,
            %% started temporary in emqx to prevent crash vm when permanent.
            {os_mon, load},
            inets,
            compiler,
            runtime_tools,
            redbug,
            xmerl,
            %% has no application/2 callback
            {hocon, load},
            telemetry,
            observer_cli,
            covertool,
            tools,
            observer,
            {system_monitor, load},
            jq
        ],
    %% must always be of type `load'
    common_business_apps =>
        [
            emqx,
            emqx_conf,
            esasl,
            emqx_utils,
            emqx_durable_storage,
            emqx_http_lib,
            emqx_resource,
            emqx_connector,
            emqx_auth,
            emqx_auth_http,
            emqx_auth_jwt,
            emqx_auth_mnesia,
            emqx_auth_mongodb,
            emqx_auth_mysql,
            emqx_auth_postgresql,
            emqx_auth_redis,
            emqx_ldap,
            emqx_auth_ldap,
            emqx_auto_subscribe,
            emqx_gateway,
            emqx_gateway_stomp,
            emqx_gateway_mqttsn,
            emqx_gateway_coap,
            emqx_gateway_lwm2m,
            emqx_gateway_exproto,
            emqx_exhook,
            emqx_bridge,
            emqx_bridge_mqtt,
            emqx_bridge_http,
            emqx_rule_engine,
            emqx_modules,
            emqx_management,
            emqx_dashboard,
            emqx_retainer,
            emqx_prometheus,
            emqx_psk,
            emqx_slow_subs,
            emqx_mongodb,
            emqx_redis,
            emqx_mysql,
            emqx_postgresql,
            emqx_plugins,
            emqx_opentelemetry,
            quicer,
            bcrypt
        ],
    %% must always be of type `load'
    ee_business_apps =>
        [
            emqx_license,
            emqx_enterprise,
            emqx_message_validation,
            emqx_bridge_kafka,
            emqx_bridge_pulsar,
            emqx_bridge_gcp_pubsub,
            emqx_bridge_cassandra,
            emqx_bridge_opents,
            emqx_bridge_clickhouse,
            emqx_bridge_dynamo,
            emqx_bridge_greptimedb,
            emqx_bridge_hstreamdb,
            emqx_bridge_influxdb,
            emqx_bridge_iotdb,
            emqx_bridge_es,
            emqx_bridge_matrix,
            emqx_bridge_mongodb,
            emqx_bridge_mysql,
            emqx_bridge_pgsql,
            emqx_bridge_redis,
            emqx_bridge_rocketmq,
            emqx_bridge_tdengine,
            emqx_bridge_timescale,
            emqx_bridge_sqlserver,
            emqx_bridge_kinesis,
            emqx_oracle,
            emqx_bridge_oracle,
            emqx_bridge_rabbitmq,
            emqx_bridge_azure_event_hub,
            emqx_bridge_s3,
            emqx_schema_registry,
            emqx_eviction_agent,
            emqx_node_rebalance,
            emqx_ft,
            emqx_gcp_device,
            emqx_dashboard_rbac,
            emqx_dashboard_sso,
            emqx_audit,
            emqx_gateway_gbt32960,
            emqx_gateway_ocpp,
            emqx_gateway_jt808,
            emqx_bridge_syskeeper,
            emqx_bridge_confluent
        ],
    %% must always be of type `load'
    ce_business_apps =>
        [emqx_telemetry]
}.
